home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / gfx / misc / GUIBlobs.lha / GUIBlobs.doc < prev    next >
Text File  |  1992-09-02  |  10KB  |  221 lines

  1. Welcome to GUIBlobs, by Chris Underwood (CMU).
  2.  
  3. GUIBlobs is a program to create weirdful blobby pictures and animations. The
  4. best way to get to know the program is to play with it, so load it up and
  5. remember that you can press Left-Amiga-A to flip it to the front or back at
  6. almost any time (not during load/save/file requestors). At any time Ctrl-C
  7. should quit the program and dump you back into Workbench.
  8.  
  9. Quick start quide:
  10.  
  11. Wanna make it do something? Click on the text that says 'New blobject' and
  12. you'll get a grid appear. Click where you want the center of a blobject, then
  13. move the mouse and click again to set the radius.
  14. Do this again, and make sure the circles overlap a fair way or you'll get a
  15. very dull picture. Also ensure that the circles aren't too big (a couple of
  16. grid squares is enough for the moment). Larger blobs take longer to render.
  17. Now click the 'Render frame' button. In a short while you'll see your blob
  18. picture. Where the blobjects overlap you can see that they have kind of
  19. spludged into each other. A save requestor pops up to save the image if you
  20. want but you can tell it to smeg off if you don't need the image saving.
  21.  
  22. Quick anim guide:
  23.  
  24. Wanna create an anim? Make a couple of blobjects that aren't overlapping.
  25. Click the 'Blob numbers on' button to show the ID numbers of each blob. Click
  26. the 'Blobject screen to front' button to view the blob preview and decide
  27. which blob is going to move. Click the 'Linear blob movement' button and enter
  28. the number of the blob that is to move (probably 1 or 2). Now move the mouse
  29. about and notice the line that is following. This line is the path the blob
  30. will follow in the anim. Click somewhere where the blobs will collide later.
  31. Now click the 'Linear blobject movement' button. Enter the other blob's ID
  32. number and set the finish size with the mouse. Don't make it too big or too
  33. small, just a grid square's difference on the original size.
  34. Now click the 'Frames:' button. Enter how many frames you want in the final
  35. anim. I usually use 20 here. Next click on 'Preview anim' and you will get
  36. a look at what the anim will look like when rendered. If you are happy with
  37. it all then click 'Frame name:' and enter a path and base frame name. The
  38. default here is set up for my own HD and will probably need editing. A
  39. possible example could be "df0:frame" which would save frames onto the
  40. internal disk drive, under the names 'Frame0000' 'Frame0001' etc. Click the
  41. 'Render Anim' button to make the frames (This can take a while).
  42. To see the anim, load up DPaintIII or greater (or some other animating tool)
  43. and select 'Load picture' from the menus. Select the first frame and set the
  44. number of pictures to load too. The anim will load in. Press '6' to ping-pong
  45. the animation.
  46.  
  47. Button discriptions:
  48.  
  49. New blobject: Add a blobject to the blobscape. You may have up to 50 blobjects
  50.               at once.
  51.  
  52. Remove blobject: Delete an object from the blobscape. You will be prompted for
  53.                  an object to delete. To cancel, enter an illegal number such
  54.                  as -1.
  55.  
  56. Blobject screen to front: Move the preview screen to the front.
  57.  
  58. Linear blob movement: Set a path for a blob to follow.
  59.  
  60. Radial blob movement: Set finish size for a blobject.
  61.  
  62. Blob numbers: on/off: Toggles use of ID numbers on the blobscape screen.
  63.  
  64. Density range graph: on/off: Toggle the colour chart in the top left of the
  65.                              rendered screen.
  66.  
  67. Anim render info: on/off: Toggle the info screen (not saved with the anim)
  68.                           This screen appears only when making an anim.
  69.  
  70. Render quality: Speed and quality control. this changes the step at which the
  71.                 blobscape is sampled for field density (explained later). A
  72.                 step of 1 means once per pixel. This is the best quality. A
  73.                 step of 2 means once per 2 pixels and will lead to blocky
  74.                 (but 4 times quicker) renders. Ideal for previews. You can set
  75.                 this sensibly up to about 10.
  76.  
  77. Differetial model: sine/linear: Setting this to Sine will make the blobs speed
  78.                                 up and slow down neatly at the start and end
  79.                                 of the anim. Ideal for ping-pong anims. Linear
  80.                                 makes the blobs move smothely from one end of
  81.                                 the anim to the other.
  82.  
  83. Grid: on/off: Toggles the grid on/off on the blobscape screen. Turn this off
  84.               if things get messy or you want a faster preview anim.
  85.  
  86. Threshold: Use this to set the drawing threshold. Valid values range between
  87.            0 and 1. More on the effect of this later.
  88.  
  89. Colour mapping: Cycle through the available colour mapping types. More on
  90.                 these later.
  91.  
  92. Clear all blobjects: Just that.
  93.  
  94. Frames: Set the number of frames for an anim.
  95.  
  96. Frame name: The base filename used for anim frames.
  97.  
  98. Load blobscape: Load a previosly saved blob setup. This will preserve things
  99.                 like the anim settings and prefs.
  100.  
  101. Save blobscape: Save the current blob data to disk. This will save prefs and
  102.                 anim data too.
  103.  
  104. Preview anim: Show a preview of the current blob anim. This can be speeded up
  105.               by making sure that the grid is off, and blob numbers aren't
  106.               visible.
  107.  
  108. Render anim: Make each frame in turn, saving them to the base filename plus
  109.              a sequential number. All rendering can be stopped by holding
  110.              both mouse buttons down until the end of the current line.
  111.  
  112. Render frame: Draw a frame. If more than one exist then you will be prompted
  113.               for the frame number to draw.
  114.  
  115. Quit: Exit GUIBlobs.
  116.  
  117. How it works:
  118.  
  119. Each blob emits a field from it's centre. This field dropps off to nil at the
  120. blob's radius. To calculate the field density at any point on the screen, we
  121. add up the individual densities of all the blobs. Where the field density
  122. is greater that a set threshold, a pixel is drawn. This pixel is mapped to
  123. a colour using a mapping function applied to the density at the point.
  124. Got that? Yes? Sad swot :-)
  125.           Nope? Thickie :-)
  126.  
  127. Threshold:
  128.  
  129. Changing this value changes how much of the blob is drawn. Low values result
  130. in large blobs that are very stodgy (not quick to splurge into another blob).
  131. Larger values make small blobs that take ages to render but are much more
  132. splungey and will squlidge into another blob quite easily.
  133. The inner circle of each blob on the blobscape screen shows an approximation
  134. to where the blob will extend to. It is usually less than the radius (which
  135. is the radius of the field, not the blob). This is only a guide.
  136.  
  137. Colour mapping:
  138.  
  139. There are threee types of colour mapping. I'll talk about each in turn and say
  140. when they are most useful.
  141.  
  142. Old style mapping:
  143. This is what I originally used in the program development. It is garanteed to
  144. create some reasonable results as long as the threshold is quite low. This
  145. maps the colours 1 to 15 linearly to the densities 0 to 1. Any density greater
  146. than 1 is mapped to colour 15 (the brightest white). Since each blob
  147. contributes a density of 1 at it's center, it is feasable that a lot of detail
  148. where blobs overlap could be missed. Also, for high thresholds, the lower
  149. value colours won't be used and the picture will be white-washed.
  150.  
  151. Fixed clipping:
  152. The default (and probably the most generally useful. This maps the colours 1
  153. to 15 to the densities between the threshold value and 1. This makes blobs on
  154. their own look best, starting at very low colours and going to the brightest
  155. shades in their centers. It still clips any densities over 1 to the highest
  156. shade of white though, so if you have a few blobs overlapping together then
  157. some detail may be missed.
  158.  
  159. Ranged mapping:
  160. This ranges the colours between the threshold value and the maximum density
  161. possible (also the same as the total number of blobs). This tends to work
  162. best when lots of blobs are fully overlapping. On their own, blobs can look
  163. too dark.
  164.  
  165. Inspiration:
  166.  
  167. This program ows a lot to POV-Ray. The documentation described the blob object
  168. that is available and I had a play with it (the results are in the archive).
  169. I also saw a Blitz2 demo that had a sort of primitave real time (5-7 fps)
  170. animated 2D blob thing. I did some maths and decided that the GUIBlobs
  171. program was feasable. A small hint to people who can program in real languages
  172. (eg C, C++, Pascal, ML, Perl etc) - don't go back to Amos after proggin' in
  173. your propper language, because you'll find yourself unable to get back into
  174. real programming and will have to learn the language from scratch! Amos has
  175. a weird effect on people - it is so easy to create wonderful graphic and sound
  176. demos in short code that you won't even want to go back to other languages.
  177. Unfortunaly, Amos lacks a few essential things: Pointer support, dynamic
  178. memory allocation (this does sort of exist but it's very limited), functions
  179. and non-bugged array mapping :-)
  180.  
  181. Bugs:
  182.  
  183. Probably too numerous to mention. I'm not really interested in carrying this
  184. program any further because the code is a bit of a mess and I want to move
  185. into a more modern language. There may be a Unix X version available in the
  186. future, and perhaps a version for Win95 (not programmed by me though). Perhaps
  187. I'll do somthing for RiscOS too, because it is such a fantastic OS. All this
  188. said, I don't much want people to report bugs or suggestions for future
  189. releases. If you want the source code for this then email me, and you can have
  190. it. Likewise, any questions on usage can also be emailed to me. I should be
  191. able to reply to all email.
  192.  
  193. Archive contents:
  194.  
  195. GUIBlobs             Executable program
  196. Blob.iff24           24 bit POV-Ray blob picture.
  197. Blob.anim5           A short anim rendered with GUIBlobs and DPaint IV.
  198. Blob.blob            The anim's datafile. Load into GUIBlobs.
  199. CMU.iff              A blobby picture of my initials.
  200. Blobs1.iff           A blob picture.
  201. Blobs2.iff           Another blob picture.
  202. GUIBlobs.readme      This readme file.
  203.  
  204. Contact me at:
  205.  
  206. Chris Underwood
  207. 29 Sandpiper Drive
  208. Worle
  209. Weston super Mare
  210. BS22 8UH
  211.  
  212. or (preferably) email me at:
  213.  
  214. csuwz@csv.warwick.ac.uk
  215.  
  216. Visit my web page at:
  217.  
  218. http://www.csv.warwick.ac.uk/~csuwz/
  219.  
  220. CMU
  221.